Next | Prev | Up | Top | Contents | Index
Process Scheduling
scheduling:assumptionskernel:scheduling assumptionsprocess schedulingWhen managing a mix of programs, the IRIX kernel attempts to keep all CPUs busy and all processes advancing, and is generally successful at this. (For details, see "Using Priorities and Scheduling Queues".) By default, the IRIX kernel schedules processes to execute under these assumptions:
- There are far more processes (dozens to hundreds) than there are CPUs to execute them.
- The system's resources should be shared among all processes as equitably as possible.
- Most processes spend most of their time waiting for input or output.
- As long as a process makes some progress (is not blocked indefinitely), its exact rate of progress is not crucial ("the system is busy" is always a valid excuse for slow response).
real-time program:and scheduler assumptionsHowever, when a real-time program is running, the assumptions for scheduling must change: there is typically only one real-time program in a system; you are prepared to give it all of the system's resources if necessary; it spends very little time waiting for input. Most important, its precise rate of progress is an integral part of its design, and "the system is busy" is never an excuse.
Your real-time program can give itself a high scheduling priority or, if it cannot tolerate time-sharing at all, it can seize one or more CPUs and dedicate them to its exclusive use. The specific calls are surveyed in Chapter 3, "How IRIX(TM) and REACT/Pro(TM) Support RealTime Programs" and covered in detail in Chapter 6, "Controlling CPU Workload".
Next | Prev | Up | Top | Contents | Index